(describe-function): For Lisp functions, write a prototype call before
authorRoland McGrath <roland@gnu.org>
Wed, 31 Mar 1993 21:11:33 +0000 (21:11 +0000)
committerRoland McGrath <roland@gnu.org>
Wed, 31 Mar 1993 21:11:33 +0000 (21:11 +0000)
the docstring, instead of an argument description after it.

lisp/help.el

index a067e23e0f66cf8acd8ab8bf470d614fb1a8d4eb..8bcdd3507924e4ef2201660cc93600cba54cb390 100644 (file)
@@ -281,7 +281,9 @@ C-w print information on absence of warranty for GNU Emacs."
     (princ ": ")
     (let* ((def (symbol-function function))
           (beg (if (commandp def) "an interactive " "a ")))
-      (princ (cond ((stringp def) "a keyboard macro.")
+      (princ (cond ((or (stringp def)
+                       (vectorp def))
+                   "a keyboard macro.")
                   ((subrp def)
                    (concat beg "built-in function."))
                   ((byte-code-function-p def)
@@ -303,24 +305,25 @@ C-w print information on absence of warranty for GNU Emacs."
                            ))
                   (t "")))
       (terpri)
+      (let ((arglist (cond ((byte-code-function-p def)
+                           (car (append def nil)))
+                          ((eq (car-safe def) 'lambda)
+                           (nth 1 def))
+                          (t t))))
+       (if (listp arglist)
+           (progn
+             (princ (cons function
+                          (mapcar (lambda (arg)
+                                    (if (memq arg '(&optional &rest))
+                                        arg
+                                      (intern (upcase (symbol-name arg)))))
+                                  arglist)))
+             (terpri))))
       (if (documentation function)
          (progn (terpri)
                 (princ (documentation function)))
        (princ "not documented"))
-      (cond ((byte-code-function-p def)
-            (save-excursion
-              (set-buffer standard-output)
-              (or (eq (char-after (1- (point-max))) ?\n)
-                  (terpri)))
-            (terpri)
-            (princ (car (append def nil))))
-           ((eq (car-safe def) 'lambda)
-            (save-excursion
-              (set-buffer standard-output)
-              (or (eq (char-after (1- (point-max))) ?\n)
-                  (terpri)))
-            (terpri)
-            (princ (nth 1 def)))))
+      )
     (print-help-return-message)
     ;; Return the text we displayed.
     (save-excursion (set-buffer standard-output) (buffer-string))))